Why write this tutorial?
I was curious about how to change the default names in Chrono Trigger but couldn't find the information about this anywhere online, so I
went ahead and figured it out for myself. There seems to be very few tutorials for Chrono Trigger hacking and little information about the
tool Temporal Flux, so I may produce more of these short hacking tutorials as I learn some more about them both.
I have only been playing around with Temporal Flux for a few days but already, I like it a lot. There is much to learn, but I think anyone can
use Temporal Flux efficiently once they become familiar with how it works.
How to hack the names
Encoded data for player names is at 0x1B006E in the ROM image. After passing the title screen, this string is copied into working
memory, for use in the game. I used Geiger's SNES9X Debugger to change working RAM locations for player names, by testing different
bytes I managed to create a table of all allowed characters available for player names in the game.
Here is what the default character string looks like:
A2CBC8C7C800ACBACBC5BE00ABCEBCBCBA00B1C8BBC80000A5CBC8C00000A0D2C5BA0000ACBAC0CECC00A4C9C8BCC100
I grabbed this from Temporal Flux in the event editor for location {000} (which is the initial loading screen). It is 48 bytes in length.
When you click Mem.PCNames, you'll see the Data field on the left side. If you copy this string and paste it into a text editor, you can reform
it to change all the default names. Once you have made the changes you need to paste it back into the Data field and press the Update
button, then press the Write Mem. button to apply the changes to the currently opened ROM. Save afterwards as normal and run in an
emulator to see if the modifications were successful (when you're asked to name a player or references in the story dialogue).
I'm not sure whether it matters if you leave spaces in this string, but with hacking it's generally best to replace the exact amount of bytes
which are stored in the ROM. Failing to follow this simple rule often leads to unexpected problems like crashing or over-written data.
Character key codes
There is a limit of 5 characters and one end byte, which is 00. here is a list of character codes, based on the ones in the naming screen.
Quick example
With this information, it is simple to change the names. Here is a breakdown of the full name string:
Click here to see this in plain text
Here is an example replacement string:
Click here to see this in plain text
When you paste it all together, it looks like this:
A1C8BBBBD200AABACDC2BE00A1BECDCDD200ACBAD1000000B3C8BABD0000B2BACBBAC100A3BEC6C8C700B2C1C2C90000
Proof this works
That's it!
As you can see, I have tested this briefly and it seemed to work OK......... Hopefully, this information is useful to someone!